import java.util.*;

public class Solution1743 {
    public int[] restoreArray(int[][] adjacentPairs) {
        Set<Integer> set=new HashSet<>();
        Map<Integer,Integer> map1=new HashMap<>();
        Map<Integer,Integer> map2=new HashMap<>();
        for (int[] adjacentPair : adjacentPairs) {
            int a=adjacentPair[0];
            int b=adjacentPair[1];
            if (set.contains(a)){
                set.remove(a);
                map2.put(a,b);
            }else{
                set.add(a);
                map1.put(a,b);
            }
            if (set.contains(b)){
                set.remove(b);
                map2.put(b,a);
            }else {
                set.add(b);
                map1.put(b, a);
            }
        }
        int[] ans=new int[adjacentPairs.length+1];
        ans[0]= (int) set.toArray()[0];
        set.clear();
        set.add(ans[0]);
        for (int i=1;i<ans.length;i++){
            int a=map1.get(ans[i-1]);
            if (!set.contains(a)){
                ans[i]=a;
                set.add(a);
            }else{
                int b=map2.get(ans[i-1]);
                ans[i]=b;
                set.add(b);
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        System.out.println(Arrays.toString(new Solution1743().restoreArray(new int[][]{{2,1},{3,4},{3,2}})));
    }
}
